package cn.lyd.org.domain;

import java.util.Date;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.lyd.base.domain.BaseDomain;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * //<p>
 * //
 * //</p>
 * <p>
 * //@author lyd
 * //@since 2022-12-26
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder //在实体类中：会创建一个 builder 方法，它的目的是用来创建构建器
// 在构建器中：会创建一个 build 方法，调用 build 方法，就会根据设置的值进行创建实体对象
public class Shop extends BaseDomain {

//    @NotNull    //判断对象，包装类 不为空
//    @NotEmpty   //判断集合是否为空
//    @NotBlank   //判断字符串是否为空
//    @Valid      //判断对象里的校验

    //店铺名称
    @Excel(name = "店铺名称", orderNum = "1", width = 30, isImportField = "true_st")
    @NotBlank(message = "店铺名字不能为空！")   //判断字符串是否为空
    private String name;

    //店铺座机
    @Excel(name = "电话", orderNum = "2", width = 30, isImportField = "true_st")
    @NotBlank(message = "店铺电话不能为空！")    //判断字符串是否为空
    private String tel;

    //入驻时间
    @Excel(name = "创建", orderNum = "3", width = 30, isImportField = "true_st", format = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date registerTime;

    //店铺状态：1待审核，2审核通过/待激活，3激活成功，4驳回
    @Excel(name = "状态", replace = {"待审核_1", "审核通过/待激活_2", "激活成功_3", "驳回_4"}, orderNum = "4", width = 30, isImportField = "true_st")
    private Integer state;

    //店铺地址
    @Excel(name = "地址", orderNum = "5", width = 30, isImportField = "true_st")
    @NotBlank(message = "店铺地址不能为空！")    //判断字符串是否为空
    private String address;

    //店铺logo
    @Excel(name="店铺Logo", orderNum = "6", width = 30, isImportField = "true_st")
    @NotBlank   //判断字符串是否为空
    private String logo;

    //店铺管理员ID
    private Long admin_id;

    //员工对象，接收员工信息=店长
//    @NotNull(message = "管理员不能为空！")    //判断对象，包装类 不为空
    @Valid  //判断对象里的校验
    private Employee admin;

}
